[WIP] DataFusion morselized scan - #9056
Conversation
Merging this PR will not alter performance
Comparing Footnotes
|
Polar Signals Profiling ResultsLatest Run
Previous Runs (20)
Powered by Polar Signals Cloud |
Benchmarks: FineWeb NVMe 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.009x ➖, 0↑ 0↓)
datafusion / parquet (1.007x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.058x ➖, 1↑ 5↓)
duckdb / parquet (0.991x ➖, 0↑ 0↓)
File Size Changes (2 files changed, -46.3% overall, 0↑ 2↓)
Totals:
|
Benchmarks: TPC-DS SF=1 on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.002x ➖, 3↑ 8↓)
datafusion / parquet (1.003x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (0.991x ➖, 4↑ 4↓)
duckdb / parquet (0.993x ➖, 6↑ 2↓)
File Size Changes (25 files changed, -43.5% overall, 0↑ 25↓)
Totals:
|
Benchmarks: PolarSignals Profiling 📖Vortex (geomean): 1.132x ❌ How to read Verdict and Engines
datafusion / vortex-file-compressed (1.132x ❌, 0↑ 4↓)
No file size changes detected. |
Benchmarks: TPC-H SF=1 on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.044x ➖, 1↑ 5↓)
datafusion / parquet (1.006x ➖, 2↑ 1↓)
duckdb / vortex-file-compressed (0.993x ➖, 0↑ 1↓)
duckdb / parquet (0.999x ➖, 0↑ 0↓)
File Size Changes (9 files changed, -43.9% overall, 0↑ 9↓)
Totals:
|
Benchmarks: TPC-H SF=10 on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.027x ➖, 6↑ 5↓)
datafusion / parquet (1.010x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.020x ➖, 0↑ 0↓)
duckdb / parquet (0.991x ➖, 2↑ 1↓)
File Size Changes (9 files changed, -44.0% overall, 0↑ 9↓)
Totals:
|
Benchmarks: Statistical and Population Genetics 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
duckdb / vortex-file-compressed (1.023x ➖, 2↑ 3↓)
duckdb / parquet (1.004x ➖, 0↑ 0↓)
File Size Changes (2 files changed, -32.3% overall, 0↑ 2↓)
Totals:
|
Benchmarks: FineWeb S3 📖Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.909x ➖, 0↑ 1↓)
datafusion / parquet (1.080x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.980x ➖, 0↑ 0↓)
duckdb / parquet (1.046x ➖, 1↑ 1↓)
|
Benchmarks: Clickbench Sorted on NVME 📖Verdict: No clear signal (medium confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.411x ❌, 1↑ 9↓)
datafusion / parquet (1.002x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.007x ➖, 0↑ 0↓)
duckdb / parquet (0.976x ➖, 0↑ 0↓)
File Size Changes (201 files changed, -42.8% overall, 49↑ 152↓)
Totals:
|
Benchmarks: Clickbench on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.364x ❌, 0↑ 33↓)
datafusion / parquet (0.999x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.014x ➖, 1↑ 4↓)
duckdb / parquet (1.001x ➖, 0↑ 0↓)
File Size Changes (101 files changed, -39.2% overall, 0↑ 101↓)
Totals:
|
Benchmarks: TPC-H SF=1 on S3 📖Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.057x ➖, 0↑ 1↓)
datafusion / parquet (1.093x ➖, 1↑ 4↓)
duckdb / vortex-file-compressed (1.046x ➖, 0↑ 1↓)
duckdb / parquet (1.024x ➖, 0↑ 0↓)
|
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
The Morselizer carried a copy of the natural-split helpers from the opener it replaced, which predated the precomputed-assignment form on the base branch. Port that forward: cache a NaturalSplits (row boundaries plus each split's assignment byte) instead of raw ranges, and translate a byte range with two binary searches instead of scanning every split. The async OnceCell cache the Morselizer introduced is kept. The boundaries are used only for byte-to-row partition alignment; the scan derives its own splits from the referenced columns' field masks, matching the base branch's fix for the all-column split inflation. Signed-off-by: Adam Gutglick <adam@spiraldb.com> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Rationale for this change
What changes are included in this PR?
What APIs are changed? Are there any user-facing changes?